Universal barrier operator transmitter

ABSTRACT

Systems and methods for controlling a moving barrier responsive to a transmission by a barrier operator controller comprising a plurality of 4-bit output nibbles generated from a 32 bit rolling code. The bit positions of the rolling code are inverted, divided by 16, converted to four bit base 9 coefficients, each four bit base 9 coefficients is substituted with a corresponding 4-bit output nibble. Receipt of the plurality of 4-bit output nibbles causes a barrier operator to actuate a motor connected to the moving barrier.

TECHNICAL FIELD

This patent disclosure relates generally to barrier operatortransmitters and, more particularly, to universal barrier operatortransmitters that can operate a variety of barrier operators from avariety of different manufacturers.

BACKGROUND

Barrier operators such as those that operate gate operators, garagedoors, or warehouse doors, are often operated by remote transmitters.The remote transmitters may be kept in vehicles so as the vehicleapproaches the barrier, the vehicle operator may articulate the remotetransmitter to open the barrier to allow the vehicle to pass.

Remotes originally supplied with barrier operator systems may be limitedin number, and may potentially raise issues with operability of thesystem. For example, remote transmitters may become broken, worn out, orlost. Further, several vehicles may use the same barrier system, thusneeding more remote transmitters than what was originally supplied inorder to provide a remote transmitter for each vehicle.

In addition, the same vehicles may need access to areas controlled bydifferent barrier systems. For example, different garage bays may beaccessed by doors controlled by barrier operators from differentmanufactures or different models from the same manufacturer andcommercial vehicles may access various warehouses having barriersoperated by operators from different manufacturers or different modelsfrom the same manufacturer.

In order to provide security, many barrier operators have securityfeatures to ensure that only authorized remote transmitters cancommunicate with the barrier operator controller to operate the barrier.Codes may be employed to ensure only authorized (verified byauthentication) communication occurs between the remote transmitter andthe barrier operator. Fixed codes, rolling codes, and a combination offixed and rolling codes may be used. Many manufacturers use differentcode schemes for their barrier operator systems. As a result, it may bedifficult for a single transmitter to be able to communicate with avariety of barrier operator systems. Further, a remote transmitter thatcan operate any barrier operator may be a security risk. If such aremote transmitter were available, an unscrupulous person could obtainone and have access to nearly any secured space controlled by a remotecontrolled barrier operator.

SUMMARY

The systems and methods described herein provide embodiments of a remotetransmitter that can be obtained separately from a barrier operatorsystem that can be configured to potentially operate with a variety ofbarrier operator systems, and also only work with those systems forwhich the possessor of the remote transmitter is authorized to use. Sucha remote transmitter may, in some embodiments, a remote transmitter canbe obtained separately from a barrier operator system that can beconfigured to potentially operate with a variety of barrier operatorsystems, but also only work with those systems for which the possessorof the remote transmitter is authorized to use.

In one aspect, the disclosure describes a method for generating arolling code using base 9 for use in moving a barrier. The methodincludes: providing a barrier operator controller having a processoroperatively connected to a transmitter and a first actuator; configuringthe processor to: provide a rolling code expressed in 32 bits; invertthe bit positions; divide the bit positions by 16; convert the quotientto 4 bit base 9 coefficients; and substitute 4 bit output nibble foreach 4 bit base 9 coefficient; and configuring a transmitter to transmitthe substituted 4 bit output nibble for each 4 bit base 9 coefficientwhen the first actuator is actuated.

In another aspect, the disclosure describes a portable controller for adoor operator. The controller includes: a processor configured to:process a rolling code expressed in 32 bits; invert the bit positions ofthe rolling code; divide the inverted bit positions by 16; convert thequotient to four bit base 9 coefficients; and substitute 4 bit outputnibble for each 4 bit base 9 coefficient in the converted code; a firstactuator operatively connected to the processor; a transmitteroperatively connected to the processor, configured to transmit thesubstituted 4 bit output nibble for each 4 bit base 9 coefficient whenthe first actuator is actuated; a receiver operatively connected to theprocessor; and a memory operatively connected to the processor.

In another aspect, the disclosure describes a portable controller for adoor operator. The controller includes: a processor configured to:process a rolling code expressed in 32 bits; invert the bit positions ofthe rolling code; divide the inverted bit positions by 16; convert thequotient to four bit base 9 coefficients; and substitute 4 bit outputnibble for each 4 bit base 9 coefficient in the converted code; a firstactuator operatively connected to the processor; an LED operativelyconnected to the processor and configured to illuminate as directed bythe controller; a transmitter operatively connected to the processorwith an i²c bus, configured to transmit the substituted 4 bit outputnibble for each 4 bit base 9 coefficient when the first actuator isactuated; a transmit antenna operatively connected to the transmitter; areceiver operatively connected to the processor with a SPI bus; areceive antenna operatively connected to the receiver; and a memoryoperatively connected to the processor.

In another aspect, the disclosure describes an apparatus, comprising aportable controller for a door operator. The portable controllerincludes a processor, a first actuator operatively connected to theprocessor, and a transmitter operatively connected to the processor. Theprocessor is configured to: invert bit positions of a 32 bit rollingcode; divide the inverted code by 16; convert the divided inverted codeto four bit base 9 coefficients; and substitute a 4-bit output nibblefor each four bit base 9 coefficient in the divided converted code. Thetransmitter is configured to transmit the substituted 4-bit outputnibble responsive to actuation of the first actuator.

In another aspect, the disclosure describes an apparatus, comprising aportable controller for a door operator. The portable controllerincludes a processor configured to process a rolling code expressed in32 bits by: inverting bit positions of the rolling code; dividing theinverted code by 16; converting the divided inverted code to four bitbase 9 coefficients; and substituting a 4-bit output nibble for eachfour bit base 9 coefficient in the divided converted code. The portablecontroller also includes a first actuator operatively connected to theprocessor. The portable controller also includes an LED operativelyconnected to the processor and configured to illuminate as directed bythe processor. The portable controller also includes a transmit antenna;and a transmitter operatively connected to the processor with aninter-integrated circuit (i²c) bus, configured to transmit eachsubstituted 4-bit output nibble, via the transmit antenna, responsive toactuation of the first actuator. The portable controller also includes areceiver operatively connected to the processor with a serial peripheralinterface (SPI) bus; and a receive antenna operatively connected to thereceiver. The portable controller also includes a memory operativelyconnected to the processor.

In another aspect, the disclosure describes a method for controlling amoving barrier. The method includes generating, by a processor of abarrier operator controller, a plurality of 4-bit output nibbles from a32 bit rolling code by: inverting bit positions of the rolling code;dividing the inverted code by 16; converting the divided inverted codeto four bit base 9 coefficients; and substituting each of a plurality offour bit base 9 coefficients in the divided converted code with a 4-bitoutput nibble. The method also includes, responsive to actuation of afirst actuator of the barrier controller operator, transmitting, by atransmitter of the barrier operator controller to a receiver of abarrier operator, the plurality of 4-bit output nibbles, receipt of theplurality of 4-bit output nibbles causing the barrier operator toactuate a motor connected to a moving barrier.

There has thus been outlined, rather broadly, certain aspects of thedisclosure in order that the detailed description thereof herein may bebetter understood, and in order that the present contribution to the artmay be better appreciated. There are, of course, additional aspects ofthe disclosure that will be described below and which will form thesubject matter of the claims appended hereto.

In this respect, before explaining at least one aspect of the disclosurein detail, it is to be understood that the systems and methods describedherein are not limited in their application to the details ofconstruction and to the arrangements of the components set forth in thefollowing description or illustrated in the drawings. The systems andmethods described herein are capable of embodiments in addition to thosedescribed and of being practiced and carried out in various ways. Also,it is to be understood that the phraseology and terminology employedherein, as well as the abstract, are for the purpose of description andshould not be regarded as limiting.

As such, those skilled in the art will appreciate that the conceptionupon which this disclosure is based may readily be utilized as a basisfor the designing of other structures, methods and systems for carryingout the several purposes of the present disclosure. It is important,therefore, that the claims be regarded as including such equivalentconstructions insofar as they do not depart from the spirit and scope ofthe present disclosure.

Additional features, advantages, and aspects of the disclosure may beset forth or apparent from consideration of the following detaileddescription, drawings, and claims. Moreover, it is to be understood thatboth the foregoing summary of the disclosure and the following detaileddescription are exemplary and intended to provide further explanationwithout limiting the scope of the disclosure as claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are included to provide a furtherunderstanding of the disclosure, are incorporated in and constitute apart of this specification, illustrate aspects of the disclosure andtogether with the detailed description serve to explain the principlesof the disclosure. No attempt is made to show structural details of thedisclosure in more detail than may be necessary for a fundamentalunderstanding of the disclosure and the various ways in which it may bepracticed. In the drawings:

FIG. 1 is a top view of a remote control transmitter in accordance withan embodiment of the present disclosure.

FIG. 2 is a side view of the remote control transmitter of FIG. 1receiving a transmission from an already learned transmitter.

FIG. 3 is a schematic diagram of a remote control transmitter inaccordance with an embodiment of the present disclosure.

FIG. 4 is a side view of a garage, garage door, and operator that iscontrolled by a remote control transmitter in accordance with thepresent disclosure.

FIG. 5 is a table showing a first rolling code sequence.

FIG. 6 is a schematic diagram of a specific remote control transmitterin accordance with an embodiment of the present disclosure.

DETAILED DESCRIPTION

The aspects of the disclosure and the various features and advantageousdetails thereof are explained more fully with reference to thenon-limiting aspects and examples that are described and/or illustratedin the accompanying drawings and detailed in the following description.It should be noted that the features illustrated in the drawings are notnecessarily drawn to scale, and features of one aspect may be employedwith other aspects as the skilled artisan would recognize, even if notexplicitly stated herein. Descriptions of well-known components andprocessing techniques may be omitted so as to not unnecessarily obscurethe aspects of the disclosure. The examples used herein are intendedmerely to facilitate an understanding of ways in which the disclosuremay be practiced and to further enable those of skill in the art topractice the aspects of the disclosure. Accordingly, the examples andaspects herein should not be construed as limiting the scope of thedisclosure, which is defined solely by the appended claims andapplicable law. Moreover, it is noted that like reference numeralsrepresent similar parts throughout the several views of the drawings.

FIG. 1 is a top view of a transmitter 10 in accordance with anembodiment of this disclosure. The transmitter 10 includes buttons 11,12, 13, and 14 located in a housing 16. The transmitter 10 may beprogrammed to operate a particular barrier operator system by a remotetransmitter 18 already paired with the barrier operator system asillustrated in FIG. 2 and described further below. Using an alreadylearned transmitter 18 to send a signal to the transmitter 10 to helpconfigure the transmitter 10 is one way to help ensure the possessor ofthe transmitter 10 is authorized to use a barrier operator because theuser needed to have possession of an already learned transmitter 18. Thealready paired transmitter 18 can transmit signals illustrated by waves20 to the transmitter 10 to be paired as discussed in more detail below.

FIG. 3 is a schematic diagram of a transmitter 10 in accordance with thepresent disclosure. The transmitter 10 includes a controller 22 whichmay be a microcontroller 22. The controller 22 is connected to atransceiver 24. The transceiver 24 is connected to an antenna 26. Thecontroller 22 is connected to a memory 28.

Optionally, the controller 22 is connected to an LED 30 or LEDs 30 forproviding feedback to a user. In some embodiments, the LED 30 or LED's30 may be used to indicate by lighting up and/or changing color that theone of the buttons 11, 12, 13, or 14 has been pressed. The LED 30 orLED's 30 may also light up and/or change color to indicate that thetransmitter 10 has received data from an already learned transmitter 18.Different lights or colors may indicate different meanings to a user.Some specific examples are discussed later below.

FIG. 4 is a side view of a garage 34 having a garage door operatingsystem 35. The operating system 35 includes a barrier operator 36mounted to the ceiling 38 of the garage 34. The barrier operator 36 isoperatively connected to a garage door 40. The garage door 40 is mountedin tracks 42 via wheel assemblies 44. A mechanical door actuator 46which may include a chain drive, belt drive, screw drive, or any othersuitable drive mechanism operatively connects the garage door 40 to thebarrier operator 36. It will be understood that a garage door 40 is onlyone non-limiting example barrier 40 that may be operated by the remotetransmitter 10. Other barriers 40 such as, but not limited to, gates,security obstacles, windows or other doors, can also be actuated by atransmitter 10 in accordance with this disclosure and be literallywithin the scope of the claims.

The operation, pairing, and programming of the transmitter 10 will nowbe explained. The transmitter 10 is a handheld transmitter 10 capable ofcommunicating with, and having its door control commands accepted andresponded to by, the designated model of the particular garage dooropener 36. In order for the transmitter 10 to communicate with aparticular model garage door opener 36, it is programmed. Thetransmitter 10 has two modes in which it may be programmed, namely a“standard” programming mode and an “advanced” programming mode.

The “standard” programming mode functions, in general, by placing thetransmitter 10 into its learn mode, storing the code transmitted from anexisting already trained transmitter 18 (See FIG. 2), and then examiningthe bits of the so-stored code to determine the code type (i.e., thetype of code that is associated with the specific designated model ofgarage door opener of the particular company). While the term “alreadytrained transmitter 18” is used in the application, it should beunderstood that the transmitter 18 need not be already trained orpaired. The transmitter 18 could also be just the correct type for theopener it will be used with. As such, the term “already trainedtransmitter” should be interpreted to also include paired transmittersand/or any transmitter 18 of the correct type to be used with aparticular operator.

Several example codes will now be explained. Where the type of codereceived from the already trained transmitter 18 is a first rollingcode, the transmitter 10 then builds from scratch a new rolling codehaving the same code type as the first rolling code transmitted from theexisting trained transmitter 18.

The examples set forth herein have different code types, differentrolling code types and a fixed code type. Alternatively, where the codetype of the transmitted code from the existing already trainedtransmitter 18 is determined to be a fixed code, or where the code typecannot be determined (meaning that the code is an unknown code) thetransmitted code remains stored in the memory 28 see FIG. 3 forsubsequent transmission.

The “advanced” programming mode functions by allowing user input todirectly select which type of code is to be programmed. In the advancedprogramming mode, a new code is built based upon the user-selected typeof code to be programmed.

The transmitter 10 has four user-actuated buttons labeled 11-14. Theuser can enter the standard programming mode by depressing the 11 buttonof the transmitter 10 while depressing the 12 button four times of thetransmitter 10. Other embodiments may employ other button combinations.After this, an indicator LED 30 starts blinking slowly, indicating thetransmitter 10 to be in its learn mode, and the user then transmits thecode from the existing already trained transmitter 18 toward, and from adistance of about one inch from, the head of the transmitter 10 as shownin FIG. 2 (not drawn to scale).

When the code from the existing already learned transmitter 18 isreceived by the transmitter 10, the transmitter 10 first determines thetype of transmission (e.g., frequency, modulation type, etc.). After thetransmission type has been determined, then the transmitter 10 proceedsto determine the code type by attempting to match fixed bits from thereceived code (e.g., the fixed preamble) with known fixed bits and tomatch the total number of bits to a known total number of bits. If thedetermination cannot be made from these bits, then the code isrecognized as a known fixed code or an unknown code, and is stored inmemory 28 for later transmission.

After the transmitted code from the existing already trained transmitterhas been received, stored, and the code type determined, an LED 30 ofthe transmitter 10 indicates such by blinking quickly, notifying theuser to depress the key 11, 12, 13, or 14 on the transmitter 10indicating to which garage door opener the user wishes to map the code.As a result, a code that is the same as the code transmitted by theexisting already learned transmitter, in the case of a fixed code, or acode of the same type of code as transmitted by the already learnedtransmitter 18, but with a different serial number, in the case of arolling code, will be generated, stored in memory 28, and associatedwith the mapped garage door opener.

The processing of rolling codes is now described, in greater detail. Fora first rolling code, the transmitter 10 may use the following process:(1) the previously used rolling code (or the rolling code providedduring initialization), which is expressed as a 32 bit binary word, isincremented by one; (2) the bit positions of the incremented 32 bitbinary word are then inverted; (3) the inverted 32 bit binary word isthen divided by 16; (4) after division by 16, the 32 bit binary word isthen converted into base 9; and (5) each base 9 coefficient is thenconverted into binary using a lookup table that substitutes a 4 bitbinary output nibble for each base 9 coefficient. The result is 10 setsof 4 bits, each of which is a binary coded representation of a base 9coefficient. Of these 10 sets of 4 bits, the 4 least significant bitsare used for sequence identifiers, sets 0 and 1 for the first sequence,sets 2 and 3 for the second sequence.

No conversion of binary into ternary is involved. Each valid rollingcode is stored in memory 28 for future transmission.

To create the data package for transmission to the receiver a validrolling code is chosen from memory 28 for transmission. Elements of thisrolling code and the transmitter ID are used to form message andsequence identifiers as described in the following format, more detailsof which are described in accompanying FIG. 5.

Of note is that the recovery identifier is formed from portions of thefirst rolling code itself, which is divided into portions used to formthe recovery identifier and into other portions used to form messagecontent. As a result, the portions of the first rolling code in thetransmitted message content do not have a relationship with the recoveryidentifier. All base conversions are between base-2 and base-9.

Some implementations of barrier operator systems that do not comprisethe systems and methods discussed herein use a trinary to binaryconversion of data during the processing and/or transmitting code to abarrier operator. Such conversions are complex and use processing timeand capacity of the processor/controller. In accordance with the presentdisclosure, no trinary to binary conversion of data occurs. In fact, thedata is never in a trinary format. Rather a base 9 implementation of therolling codes are used. This provides several advantages includingrequiring fewer steps and using less processing time and capacity of theprocessor/controller, resulting in the processor/controller being ableto operate more quickly. Two example implementations using base 9 aredescribed below.

A detailed example of transformation of a first rolling code scheme isnow described. Start with rolling code equal 1 and increment by 1 eachtime. Each rolling code is expressed in 32 bits. For each rolling code—

-   -   1) Invert the bit positions    -   2) Divide by 16    -   3) Convert to base 9 coefficients. Each of which is 4 bits.    -   4) Substitute via lookup table 4 bit output nibble for each 4        bit base 9 coefficient. This results in 10 sets of 4 bits each        of which is a coded representation of a base 9 coefficient.

The 10 4 bit codes=40 bits=5 bytes to hold rolling code. See Table 1below.

TABLE 1 Detail of conversion and representation of rolling codes. Forthe rest of this analysis assume rolling code = 12413 In binary (32bits) = 00000000000000000011000001111101 (base 2) Invert bit position =10111110000011000000000000000000 Divide by 16 =  1011111000001100000000000000 Convert to base 9 10 base 9 coefficients ---6-- --4-  045587 1747 (base 9)

Memory Layout of rolling code 12413 after it has undergone inversion ofthe order of the bits and translation in base 9. See Tables 2 and 3.Below.

TABLE 2 Binary representation of 6 Binary representation of 4 mostsignificant coefficients least significant coefficients “MessageContent” “Sequence Identifiers” Byte 4 Byte 3 Byte 2 Byte 1 Byte 0 6most significant Identifier 2 Identifier 1 9-8 7-6 5-4 3-2 1-0coefficient # 0 4 5 5 8 7 1 7 4 7 Base 9 00000101 01100110 101010010001100 0101100 Binary¹ ¹Base 9 coefficients are converted to binarysymbols via the following lookup table.

TABLE 3 Base 9 coefficient to 4 bit binary symbol lookup table Base 9coefficient 4 bit binary symbol Decimal 4 bit binary Decimal 4 bitbinary 0 0000 0 0000 1 0001 1 0001 2 0010 2 0010 3 0011 4 0100 4 0100 50101 5 0101 6 0110 6 0110 8 1000 7 0111 9 1001 8 1000 10  1010 The base9 coefficient in column one is used to lookup the 4 bit binary symbolfrom the last column.

Sequence Identifiers

The 4 least significant coefficients=1747^((base9)) “are used forsequence identifiers (coefficients 1-0 for the first sequence,coefficients 3-2 for the second sequence)” See Table 4 below:

TABLE 4 Transmission Characteristic 2nd Recovery/ 1st Recovery/ SequenceSequence Identifier Identifier Coefficient index# 3 2 1 0 Base9coefficients 1 7 4 7 Stored as 4 bit 0001 1001 0101 1001 binary symbols¹= Sequence Identifier1 (1 byte) = 47^((base9)) = 01011001 binary “4 msbbits carries data order method” “4 lsb bits carries inversion method”(Always 7^((base9)) or 1001 in binary, due to selection of rollingcode.) Sequence Identifier2 (1 byte) = 17^((base9)) = 00011001 binary “4msb bits carries data order method” “4 lsb bits carries inversionmethod” (Always 7^((base9)) or 1001 in binary, due to selection ofrolling code.)

The possible values for the sequence identifier data order nibble (4 msbbits) are 0^((base9)) through 8^((base9)). 6 possible orderings of bitsin a ‘triplet’ as follows—in Table 5 below.

TABLE 5 ABC ACB BCA BAC CAB CBA

In fact, in the example, methods 2&8, 3&6 and 5&7 are identical, whichyields the 6 methods in use.

Message Content

The 6 most significant coefficients=045587^((base9)) are transmitted intheir binary expression, splitting the two sequences together with theserial number of the transmitter to form the 20 triplets (10 tripletsfor any sequence). See Table 6 below.

TABLE 6 Coefficient index 9 8 7 6 5 4 Base9 coefficients 0 4 5 5 8 7Stored as 4 bit 0000 0101 0110 0110 1010 1001 binary symbols¹ = SequenceContent 1 is formed from these 10-bit values: A = first byte of serialnumber shifted left by 2 to make a 10-bit number B = second byte ofserial number shifted left by 2 to make a 10-bit number C = first byteof 3 byte representation of 6 most significant coefficients of rollingcode shifted left by 2 to make a 10-bit number, ORed with 2 lsb bitsfrom 3rd rolling code byte. Sequence Content 2 is formed from these10-bit values: A = third byte of serial number shifted left by 2 to makea 10-bit number B = fourth byte of serial number shifted left by 2 tomake a 10-bit number C = second byte of 3 byte representation of 6 mostsignificant coefficients of rolling code shifted left by 2 to make a10-bit number, ORed with bits 2 and 3 from 3rd rolling code byte shiftedright by 2. Note: These 10-bit values A, B & C are internallyrepresented in 16 bit variables using bits 9-0.

For each of the two sequence message contents, 10 ‘triplets’ areformed—“message contents are divided in 10 triplets, and in any tripletis applied a scheme of transmission order of the triplet (for examplesA,B,C, B,A,C; C,B,A etc.) and a scheme of inversion of the bits (forexample A, not B, not C; not A, B, not C; etc).”

The most significant bit (bit 9) of each of the three 10-bit values A, B& C are combined into a ‘triplet’ using the bit ordering and inversionspecified by the computed sequence identifier. A, B & C are then eachshifted left by 1 to bring the next bit into position, and the processrepeats 10 times resulting in the 10 triplets of the sequence messagecontent.

The ‘triplet’ is actually created directly into a radio transmit bufferwhich is organized as a stream of bits in Manchester encoding. The radiotransmit buffer ultimately contains framing and spacing as well as thetwo sequence messages each of which is made up of the ten tripletsgenerated as above.

Where a fixed code is selected in the advanced programming mode, thecode is built from scratch.

The hardware of another embodiment of the transmitter 10 is nowdescribed with response to FIG. 6. The transmitter 10 includes a mainmicrocontroller 22 performing most of the described functions with theexception of the specific transmissions or receptions of the garage dooroperator codes. A Silicon Laboratories' Si4012 IC 24 a coupled to themicrocontroller 22 via an I²C 50 bus is used for transmission duties. Ofparticular note is that this Si4012 IC 24 a does not utilize a phaselocked loop (PLL) of any kind in generating transmissions. Instead, theSi4012 IC 24 a uses an LC oscillator and a programmable divider togenerate transmissions. A Silicon Laboratories” Si4355 24 b coupled tothe microcontroller 22 via an SPI 52 bus is used for reception duties.

Also of note is that the tuning of the antenna 26 a is performed by atuner that receives its control signals from a digital logic block ofthe Si4012 IC 24 a. A synthesizer receives control signals from thedigital logic block and generates a transmission signal accordingly inresponse thereto. This transmission signal is amplified by a poweramplifier, and then fed to the tuner. The synthesizer provides nosignal, voltage signal or otherwise, that affects the tuning.

A universal transmitter 10 shown in FIG. 6, has a separate transmitter24 a and receiver ICs 24 b. The transmitter 10 is a compactmulti-frequency, multi-protocol accessory RF remote control transmitter10 that incorporates a microcontroller 22 and a transceiver 24 (ortransmitter 24 a and receiver 24 b) with a PLL-based programmablefrequency synthesizer. The remote controller 10 uses a transmitter IC 24a that does not incorporate a PLL. The Si4012 transmitter 24 a, alow-cost IC, is suited to this purpose. A separate receiver IC 24 b, inthis case the SiLabs Si4355 receiver 24 b, is used. The PICmicrocontroller 22 may be used. Some embodiments may use the ST8L151G6microcontroller 22 (32K flash, 2K RAM, 1K EEPROM) other embodiments mayuse the PIC18LF26K40 (64K flash, 3,728 bytes RAM, 1K EEPROM) or thePIC32MM0064GPM028 (64K flash, 16K RAM).

In the transmitter 10 is depicted in FIG. 6, the 3V lithium coin cell isused. An n-channel depletion-mode MOSFET 54 is optionally placed in thereturn path to the battery 32 to provide low-dropout reverse voltageprotection, depending on how well the battery holder (not shown)provides such protection in its physical design.

The microcontroller 22 controls the transmitter 24 a and receiver 24 b,responds to pushbutton I/O switches 11, 12, 13, 14, indicates statethrough the LEDs 30, and manages power for the system 10. In idlestates, the microcontroller 22 places the Si4012 transmitter IC 24 a andthe Si4355 receiver IC 24 b into lower-power shutdown modes using theprovided shutdown lines before itself going into a low power sleep mode.From the sleep mode it wakes on change of the pushbutton 11, 12, 13, 14inputs, so the pushbuttons 11, 12, 13, 14 are attached to I/O pins thatprovide for interrupt (wake) on change, and may be attached to pins thatprovide internal pull-ups to eliminate external pull-up resistors tominimize parts count and circuit area. The Si4012 transmitter IC 24 a isconnected to the microcontroller 22 by a two wire I²c bus interface 50,and the Si4355 receiver 24 b is connected to the microcontroller 22 by athree-wire SPI bus interface 52.

Some embodiments may use a ST ST8L151G6 microcontroller 22 (32K flash,2K RAM, 1K EEPROM). Other embodiments may use the next step up in 28-pinmicrocontrollers 22 from Microchip to be the PIC18LF26K40 (64K flash,3,728 bytes RAM, 1K EEPROM) and the PIC32MM0064GPM028 (64K flash, 16KRAM). Other embodiments may use an IC with larger pin count.

The Si4012 transmitter IC 24 a provides a frequency agile transmittercontrolled by the I²C bus 50, an adjustable power amplifier with maximumoutput of 10 dBm, and automatic antenna tuning. The antenna design 26 amay be either a simple loop or the double loop. It is possible toimplement Si4012-based transmitters 24 a with little or no matching orfiltering components, but to provide best performance in this compactdesign, some embodiments may choose to forgo the use of the antennatuning features of the Si4012 24 a and implement a low-pass filter tosuppress transmitter harmonics and a broadband match to the antenna 26a. Due to the unique design of the Si4012 frequency synthesizer 24 a,the external crystal 56 depicted in the block diagram is not strictlyrequired.

The Si4355 receiver 24 b provides a frequency agile receiver suitablefor 300-400 MHz band. The antenna 26 b design for the receiver 24 b maybe minimal with few or no matching or filtering components since itsintended use is near-field reception of a remote for cloning. The Si435524 b is controlled by the microcontroller 22 over its SPI bus interface52 and outputs RF baseband data on one of its GPIO pins to themicrocontroller 22 for decoding.

While the disclosure has been described in terms of exemplary aspects,those skilled in the art will recognize that the disclosure can bepracticed with modifications in the spirit and scope of the appendedclaims. These examples given above are merely illustrative and are notmeant to be an exhaustive list of all possible designs, aspects,applications or modifications of the disclosure.

I claim:
 1. An apparatus, comprising: a portable controller for a dooroperator, comprising a processor, a first actuator operatively connectedto the processor, and a transmitter operatively connected to theprocessor; wherein the processor is configured to: invert bit positionsof a 32 bit rolling code, divide the inverted code by 16, convert thedivided inverted code to four bit base 9 coefficients, and substitute a4-bit output nibble for each four bit base 9 coefficient in the dividedconverted code; and wherein the transmitter is configured to transmitthe substituted 4-bit output nibble responsive to actuation of the firstactuator.
 2. The apparatus of claim 1, wherein the portable controllerfurther comprises a memory storing a lookup table of substitutionsbetween each of a plurality of four bit base 9 coefficient values and acorresponding plurality of 4-bit output nibbles; and wherein thecontroller is configured to substitute the 4-bit output nibble in thedivided converted code according to the lookup table.
 3. The apparatusof claim 1, wherein the transmitter is further configured to transmitthe substituted 4-bit output nibble to a receiver associated with abarrier operator, receipt of the substituted 4-bit output nibble causingthe barrier operator to send a control signal to a motor associated withthe barrier to cause the barrier to stop, move toward an open position,or move toward a closed position.
 4. The apparatus of claim 1, whereinthe portable controller further comprises a second actuator; and whereinthe processor is further configured to enter into a standard programmingmode, responsive to continuous actuation of the first actuator andsimultaneous repeated actuation of the second actuator.
 5. The apparatusof claim 4, wherein the portable controller further comprises a receiverconfigured to receive a code from another controller while the processoris in the standard programming mode.
 6. The apparatus of claim 1,wherein the portable controller further comprises a receiver; whereinthe receiver is configured to receive a code from another controller;and wherein the processor is further configured to derive the 32 bitrolling code from the code received from the other controller.
 7. Theapparatus of claim 1, wherein the portable controller further comprisesa first LED operably connected to the processor and configured toilluminate responsive to actuation of the first actuator or a secondactuator operably connected to the processor.
 8. The apparatus of claim6, wherein the first LED is configured to illuminate responsive toactuation of the first actuator; and wherein the portable controllerfurther comprises a second LED operably connected to the processor andconfigured to illuminate responsive to actuation of the second actuator.9. An apparatus, comprising: a portable controller for a door operator,comprising: a processor configured to process a rolling code expressedin 32 bits by: inverting bit positions of the rolling code, dividing theinverted code by 16, converting the divided inverted code to four bitbase 9 coefficients, and substituting a 4-bit output nibble for eachfour bit base 9 coefficient in the divided converted code; a firstactuator operatively connected to the processor; an LED operativelyconnected to the processor and configured to illuminate as directed bythe processor; a transmit antenna; a transmitter operatively connectedto the processor with an inter-integrated circuit (i²c) bus, configuredto transmit each substituted 4-bit output nibble, via the transmitantenna, responsive to actuation of the first actuator; a receiveroperatively connected to the processor with a serial peripheralinterface (SPI) bus; a receive antenna operatively connected to thereceiver; and a memory operatively connected to the processor.
 10. Theapparatus of claim 9, wherein the portable controller further comprisesa second, third, and fourth actuator operably connected to theprocessor.
 11. A method for controlling a moving barrier, comprising:generating, by a processor of a barrier operator controller, a pluralityof 4-bit output nibbles from a 32 bit rolling code by: inverting bitpositions of the rolling code, dividing the inverted code by 16,converting the divided inverted code to four bit base 9 coefficients,and substituting each of a plurality of four bit base 9 coefficients inthe divided converted code with a 4-bit output nibble; and responsive toactuation of a first actuator of the barrier controller operator:transmitting, by a transmitter of the barrier operator controller to areceiver of a barrier operator, the plurality of 4-bit output nibbles,receipt of the plurality of 4-bit output nibbles causing the barrieroperator to actuate a motor connected to a moving barrier.
 12. Themethod of claim 11, wherein generating the plurality of 4-bit outputnibbles further comprises substituting each of the plurality of four bitbase 9 coefficients with a 4-bit output nibble identified in a lookuptable as corresponding to the four bit base 9 coefficient.
 13. Themethod of claim 11, wherein receipt of the plurality of 4-bit outputnibbles further causes the barrier operator to actuate the motorconnected to the moving barrier to cause the moving barrier to stop,move toward an open position, or move toward a closed position.
 14. Themethod of claim 11, further comprising entering into a standardprogramming mode, by the processor, responsive to repeated actuation ofa second actuator of the barrier controller operator during actuation ofthe first actuator.
 15. The method of claim 14, further comprisingentering into the standard programming mode responsive to the secondactuator being actuated four times during actuation of the firstactuator.
 16. The method of claim 14, further comprising receiving, by areceiver of the barrier operator controller while in the standardprogramming mode, a code from a second barrier operator controller. 17.The method of claim 16, further comprising: determining, by theprocessor, that the code received from the second barrier operatorcontroller is a fixed code type or an unknown code type; and responsiveto the determination, storing the code received from the second barrieroperator controller in a memory of the barrier operator controller. 18.The method of claim 17, further comprising: transmitting the storedcode, by the transmitter to the receiver of the barrier operator,responsive to actuation of the first actuator, receipt of the storedcode causing the barrier operator to actuate the motor connected to themoving barrier.
 19. The method of claim 16, further comprising derivingthe 32 bit rolling code, by the processor, from the code received fromthe second barrier operator controller.
 20. The method of claim 11,further comprising illuminating an LED of the barrier operatorcontroller, responsive to actuation of the first actuator or a secondactuator of the barrier operator controller.